<?php

class App_Model_DbTable_User_Account extends Ext_Db_Table  
{  
	/** Table name */  
    protected $_name = 'user_account';
    
    private static $_userAccountRow = array();
    
	public function getRowById($userId)
	{
		if(!$userId)
		{
			return "";
		}
		
		if(isset(self::$_userAccountRow['id'][$userId]))
		{
			return self::$_userAccountRow['id'][$userId];
		}
		
		$db = $this->getAdapter();
		$safe = $db->quoteInto(" id = ? ", $userId);
		$row = $this->fetchRow($safe);
		if (!$row) {
			return "";
		}
		$_userAccountRow = $row->toArray();

		self::$_userAccountRow['id'][$userId] = $_userAccountRow;
		$_username = $_userAccountRow['username'];
		if($_username)
		{
			self::$_userAccountRow['username'][$_username] = $_userAccountRow;
		}
		$_email = $_userAccountRow['email'];
		if($_email)
		{
			self::$_userAccountRow['email'][$_email] = $_userAccountRow;
		}
		
		return $_userAccountRow;
	}
	
	public function getRowByUsername($username)
	{
		if(!$username)
		{
			return "";
		}
		
		if(isset(self::$_userAccountRow['username'][$username]))
		{
			return self::$_userAccountRow['username'][$username];
		}
		
		$db = $this->getAdapter();
		$safe = $db->quoteInto(" username = ? ", $username);
		$row = $this->fetchRow($safe);
		if (!$row) {
			return "";
		}
		$_userAccountRow = $row->toArray();

		self::$_userAccountRow['username'][$username] = $_userAccountRow;
		$_userId = $_userAccountRow['id'];
		if($_userId)
		{
			self::$_userAccountRow['id'][$_userId] = $_userAccountRow;
		}
		$_email = $_userAccountRow['email'];
		if($_email)
		{
			self::$_userAccountRow['email'][$_email] = $_userAccountRow;
		}
				
		return $_userAccountRow;
	}
	
	public function getRowByEmail($email)
	{
		if(!$email)
		{
			return "";
		}
		
		if(isset(self::$_userAccountRow['email'][$email]))
		{
			return self::$_userAccountRow['email'][$email];
		}
		
		$db = $this->getAdapter();
		$safe = $db->quoteInto(" email = ? ", $email);
		$row = $this->fetchRow($safe);
		if (!$row) {
			return "";
		}
		$_userAccountRow = $row->toArray();

		self::$_userAccountRow['email'][$email] = $_userAccountRow;
		$_userId = $_userAccountRow['id'];
		if($_userId)
		{
			self::$_userAccountRow['id'][$_userId] = $_userAccountRow;
		}
		$_username = $_userAccountRow['username'];
		if($_username)
		{
			self::$_userAccountRow['username'][$_username] = $_userAccountRow;
		}
		
		return $_userAccountRow;
	}
	
	public function addNew($inputArray)
	{
		$sql_data_array = array();
		if(array_key_exists('id', $inputArray)) $sql_data_array['id'] = $inputArray['id'];
		if(array_key_exists('username', $inputArray)) $sql_data_array['username'] = $inputArray['username'];
		if(array_key_exists('password', $inputArray)) $sql_data_array['password'] = $inputArray['password'];
		if(array_key_exists('email', $inputArray)) $sql_data_array['email'] = $inputArray['email'];
		if(!$sql_data_array)
		{
			return "";
		}
		
		try {
			$rows_affected = $this->insert($sql_data_array);
			$last_insert_id = $this->getAdapter()->lastInsertId();
		}catch (Exception $e){
			trigger_error($e->getMessage(), E_USER_WARNING);
		}
		return $last_insert_id;
	}
	
	public function addOld($inputArray, $userId)
	{
		$sql_data_array = array();
		if(array_key_exists('password', $inputArray)) $sql_data_array['password'] = $inputArray['password'];
		if(array_key_exists('email', $inputArray)) $sql_data_array['email'] = $inputArray['email'];
		if(!$sql_data_array)
		{
			return "";
		}
		
		try {
			$db = $this->getAdapter();
			$where = $db->quoteInto(" id = ? ", $userId);
			$rows_affected = $this->update($sql_data_array, $where);
		}catch (Exception $e){
			trigger_error($e->getMessage(), E_USER_WARNING);
		}
		
		return "";
	}
	
}  

